home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / intuisup.lha / Intuisup / source.lha / Editor / window.c < prev   
C/C++ Source or Header  |  1992-10-05  |  34KB  |  1,163 lines

  1. /* $Revision Header *** Header built automatically - do not edit! ***********
  2.  *
  3.  *    (C) Copyright 1992 by Torsten Jurgeleit
  4.  *
  5.  *    Name .....: window.c
  6.  *    Created ..: Friday 02-Oct-92 10:25:09
  7.  *    Revision .: 1
  8.  *
  9.  *    Date        Author                 Comment
  10.  *    =========   ====================   ====================
  11.  *    02-Oct-92   Michael Bjerking       New realese, better Screen/Window editor
  12.  *    02-Oct-92   Michael Bjerking       Created this file!
  13.  *
  14.  * $Revision Header ********************************************************/
  15.  
  16.  /* Includes */
  17.  
  18. #include "includes.h"
  19. #include "defines.h"
  20. #include "imports.h"
  21. #include "protos.h"
  22.  
  23.          /* Data for fonts */
  24.  
  25.          STATIC struct TextAttr window_text_attr[]=
  26.          {
  27.              {
  28.                  (STRPTR) "topaz.font", 8, FS_NORMAL, FPF_ROMFONT
  29.              }
  30.          };
  31.          /* Defines and data for gadgets */
  32.  
  33. #define WINDOW_GADGET_TOPEDGE   0
  34. #define WINDOW_GADGET_LEFTEDGE   1
  35. #define WINDOW_GADGET_WIDTH   2
  36. #define WINDOW_GADGET_HEIGHT   3
  37. #define WINDOW_GADGET_DETAILPEN   4
  38. #define WINDOW_GADGET_BLOCKPEN   5
  39. #define WINDOW_GADGET_IDCMPFLAGS   6
  40. #define WINDOW_GADGET_FLAGS   7
  41. #define WINDOW_GADGET_TITLE   8
  42. #define WINDOW_GADGET_MINWIDTH   9
  43. #define WINDOW_GADGET_MINHEIGHT   10
  44. #define WINDOW_GADGET_MAXWIDTH   11
  45. #define WINDOW_GADGET_MAXHEIGHT   12
  46. #define WINDOW_GADGET_OK   13
  47. #define WINDOW_GADGET_CANCEL   14
  48.  
  49.          IMPORT struct List window_gadget7_list;
  50.          STATIC struct Node window_gadget7_node[]=
  51.          {
  52.              {
  53.                  &window_gadget7_node[1], (struct Node *) & window_gadget7_list.lh_Head, 0, 0,
  54.                  " GADGETDOWN"
  55.              },
  56.              {
  57.                  &window_gadget7_node[2], &window_gadget7_node[0], 0, 0,
  58.                  " GADGETUP"
  59.              },
  60.              {
  61.                  &window_gadget7_node[3], &window_gadget7_node[1], 0, 0,
  62.                  " CLOSEWINDOW"
  63.              },
  64.              {
  65.                  &window_gadget7_node[4], &window_gadget7_node[2], 0, 0,
  66.                  " REQSET"
  67.              },
  68.              {
  69.                  &window_gadget7_node[5], &window_gadget7_node[3], 0, 0,
  70.                  " REQCLEAR"
  71.              },
  72.              {
  73.                  &window_gadget7_node[6], &window_gadget7_node[4], 0, 0,
  74.                  " REQVERIFY"
  75.              },
  76.              {
  77.                  &window_gadget7_node[7], &window_gadget7_node[5], 0, 0,
  78.                  " MENUPICK"
  79.              },
  80.              {
  81.                  &window_gadget7_node[8], &window_gadget7_node[6], 0, 0,
  82.                  " MENUVERIFY"
  83.              },
  84.              {
  85.                  &window_gadget7_node[9], &window_gadget7_node[7], 0, 0,
  86.                  " MOUSEBUTTONS"
  87.              },
  88.              {
  89.                  &window_gadget7_node[10], &window_gadget7_node[8], 0, 0,
  90.                  " MOUSEMOVE"
  91.              },
  92.              {
  93.                  &window_gadget7_node[11], &window_gadget7_node[9], 0, 0,
  94.                  " DELTAMOVE"
  95.              },
  96.              {
  97.                  &window_gadget7_node[12], &window_gadget7_node[10], 0, 0,
  98.                  " NEWSIZE"
  99.              },
  100.              {
  101.                  &window_gadget7_node[13], &window_gadget7_node[11], 0, 0,
  102.                  " SIZEVERIFY"
  103.              },
  104.              {
  105.                  &window_gadget7_node[14], &window_gadget7_node[12], 0, 0,
  106.                  " REFRESHWINDOW"
  107.              },
  108.              {
  109.                  &window_gadget7_node[15], &window_gadget7_node[13], 0, 0,
  110.                  " ACTIVEWINDOW"
  111.              },
  112.              {
  113.                  &window_gadget7_node[16], &window_gadget7_node[14], 0, 0,
  114.                  " INACTIVEWINDOW"
  115.              },
  116.              {
  117.                  &window_gadget7_node[17], &window_gadget7_node[15], 0, 0,
  118.                  " RAWKEY"
  119.              },
  120.              {
  121.                  &window_gadget7_node[18], &window_gadget7_node[16], 0, 0,
  122.                  " VANILLAKEY"
  123.              },
  124.              {
  125.                  &window_gadget7_node[19], &window_gadget7_node[17], 0, 0,
  126.                  " DISKINSERTED"
  127.              },
  128.              {
  129.                  &window_gadget7_node[20], &window_gadget7_node[18], 0, 0,
  130.                  " DISKREMOVED"
  131.              },
  132.              {
  133.                  &window_gadget7_node[21], &window_gadget7_node[19], 0, 0,
  134.                  " NEWPREFS"
  135.              },
  136.              {
  137.                  &window_gadget7_node[22], &window_gadget7_node[20], 0, 0,
  138.                  " INTUITICKS"
  139.              },
  140.              {
  141.                  &window_gadget7_node[23], &window_gadget7_node[21], 0, 0,
  142.                  " WBENCHMESSAGE"
  143.              },
  144.              {
  145.                  (struct Node *) & window_gadget7_list.lh_Tail, &window_gadget7_node[22], 0, 0,
  146.                  " GADGET_IDCMP_ALL"
  147.              }
  148.          };
  149.          /* STATIC */ struct List window_gadget7_list =
  150.          {
  151.              &window_gadget7_node[0], NULL,
  152.              &window_gadget7_node[22], 0, 0
  153.          };
  154.          IMPORT struct List window_gadget8_list;
  155.          STATIC struct Node window_gadget8_node[]=
  156.          {
  157.              {
  158.                  &window_gadget8_node[1], (struct Node *) & window_gadget8_list.lh_Head, 0, 0,
  159.                  " WINDOWCLOSE"
  160.              },
  161.              {
  162.                  &window_gadget8_node[2], &window_gadget8_node[0], 0, 0,
  163.                  " WINDOWDRAG"
  164.              },
  165.              {
  166.                  &window_gadget8_node[3], &window_gadget8_node[1], 0, 0,
  167.                  " WINDOWDEPTH"
  168.              },
  169.              {
  170.                  &window_gadget8_node[4], &window_gadget8_node[2], 0, 0,
  171.                  " WINDOWSIZING"
  172.              },
  173.              {
  174.                  &window_gadget8_node[5], &window_gadget8_node[3], 0, 0,
  175.                  " BACKDROP"
  176.              },
  177.              {
  178.                  &window_gadget8_node[6], &window_gadget8_node[4], 0, 0,
  179.                  " BORDERLESS"
  180.              },
  181.              {
  182.                  &window_gadget8_node[7], &window_gadget8_node[5], 0, 0,
  183.                  " GIMMEZEROZERO"
  184.              },
  185.              {
  186.                  &window_gadget8_node[8], &window_gadget8_node[6], 0, 0,
  187.                  " SUPER_BITMAP"
  188.              },
  189.              {
  190.                  &window_gadget8_node[9], &window_gadget8_node[7], 0, 0,
  191.                  " SIMPLE_REFRESH"
  192.              },
  193.              {
  194.                  &window_gadget8_node[10], &window_gadget8_node[8], 0, 0,
  195.                  "+SMART_REFRESH"
  196.              },
  197.              {
  198.                  &window_gadget8_node[11], &window_gadget8_node[9], 0, 0,
  199.                  " REPORTMOUSE"
  200.              },
  201.              {
  202.                  &window_gadget8_node[12], &window_gadget8_node[10], 0, 0,
  203.                  " NOCAREREFRESH"
  204.              },
  205.              {
  206.                  &window_gadget8_node[13], &window_gadget8_node[11], 0, 0,
  207.                  " RMBTRAP"
  208.              },
  209.              {
  210.                  &window_gadget8_node[14], &window_gadget8_node[12], 0, 0,
  211.                  " ACTIVATE"
  212.              },
  213.              {
  214.                  &window_gadget8_node[15], &window_gadget8_node[13], 0, 0,
  215.                  " FILL_BACKGROUND"
  216.              },
  217.              {
  218.                  &window_gadget8_node[16], &window_gadget8_node[14], 0, 0,
  219.                  " USE_RENDER_COLORS"
  220.              },
  221.              {
  222.                  (struct Node *) & window_gadget8_list.lh_Tail, &window_gadget8_node[15], 0, 0,
  223.                  " AVAIL_FONTS"
  224.              }
  225.          };
  226.          /* STATIC */ struct List window_gadget8_list =
  227.          {
  228.              &window_gadget8_node[0], NULL,
  229.              &window_gadget8_node[16], 0, 0
  230.          };
  231.          STATIC struct GadgetData window_gadget_data[]=
  232.          {
  233.              {
  234.                  5, 80, 90, 26 - 10, 61, 14,
  235.                  "_TopEdge  ", &window_text_attr[0],
  236.                  {10, 0, (VOID *) 123}
  237.              },
  238.              {
  239.                  5, 80, 90, 11 - 10, 61, 14,
  240.                  "_LeftEdge ", &window_text_attr[0],
  241.                  {10, 0, (VOID *) 123}
  242.              },
  243.              {
  244.                  5, 80, 90, 41 - 10, 61, 14,
  245.                  "_Width    ", &window_text_attr[0],
  246.                  {10, 0, (VOID *) 123}
  247.              },
  248.              {
  249.                  5, 80, 90, 56 - 10, 61, 14,
  250.                  "_Heigth   ", &window_text_attr[0],
  251.                  {10, 0, (VOID *) 123}
  252.              },
  253.              {
  254.                  5, 80, 90, 71 - 10, 61, 14,
  255.                  "_DetailPen", &window_text_attr[0],
  256.                  {10, 0, (VOID *) 123}
  257.              },
  258.              {
  259.                  5, 80, 90, 86 - 10, 61, 14,
  260.                  "_BlockPen ", &window_text_attr[0],
  261.                  {10, 0, (VOID *) 123}
  262.              },
  263.              {
  264.                  10, 256, 160, 25 - 10, 150, 43,
  265.                  "IDCMP Flags", &window_text_attr[0],
  266.                  {0, 0, &window_gadget7_list}
  267.              },
  268.              {
  269.                  10, 256, 320, 25 - 10, 190, 36,
  270.                  "Window Flags", &window_text_attr[0],
  271.                  {0, 0, &window_gadget8_list}
  272.              },
  273.              {
  274.                  4, 80, 58, 104 - 10, 117, 14,
  275.                  "T_itle", &window_text_attr[0],
  276.                  {MAX_PROJECT_NAME_LEN - 1, 0, "String"}
  277.              },
  278.              {
  279.                  5, 65, 260, 65 - 10, 61, 14,
  280.                  "MinWidth ", &window_text_attr[0],
  281.                  {10, 0, (VOID *) 123}
  282.              },
  283.              {
  284.                  5, 65, 260, 80 - 10, 61, 14,
  285.                  "MinHeight", &window_text_attr[0],
  286.                  {10, 0, (VOID *) 123}
  287.              },
  288.              {
  289.                  5, 65, 420, 65 - 10, 61, 14,
  290.                  "MaxWidth  ", &window_text_attr[0],
  291.                  {10, 0, (VOID *) 123}
  292.              },
  293.              {
  294.                  5, 65, 420, 80 - 10, 61, 14,
  295.                  "MaxHeight ", &window_text_attr[0],
  296.                  {10, 0, (VOID *) 123}
  297.              },
  298.              {
  299.                  1, 16, 220, 100 - 10, 116, 20,
  300.                  "_Ok", &window_text_attr[0],
  301.                  {0, 0, (VOID *) 0}
  302.              },
  303.              {
  304.                  1, 16, 347, 100 - 10, 116, 20,
  305.                  "_Cancel", &window_text_attr[0],
  306.                  {0, 0, (VOID *) 0}
  307.              },
  308.              {
  309.                  INTUISUP_DATA_END
  310.              }
  311.          };
  312.  
  313.          VOID
  314.              change_flags_list(APTR gl, USHORT flags, ULONG IDCMPflags, ULONG WINflags)
  315.          {
  316.  
  317.              /* IDCMP Flags */
  318.  
  319.              if (IDCMPflags & GADGETDOWN)
  320.                  strcpy(window_gadget7_node[0].ln_Name, "*GADGETDOWN");
  321.              else
  322.                  strcpy(window_gadget7_node[0].ln_Name, " GADGETDOWN");
  323.  
  324.              if (IDCMPflags & GADGETUP)
  325.                  strcpy(window_gadget7_node[1].ln_Name, "*GADGETUP");
  326.              else
  327.                  strcpy(window_gadget7_node[1].ln_Name, " GADGETUP");
  328.  
  329.              if (IDCMPflags & CLOSEWINDOW)
  330.                  strcpy(window_gadget7_node[2].ln_Name, "*CLOSEWINDOW");
  331.              else
  332.                  strcpy(window_gadget7_node[2].ln_Name, " CLOSEWINDOW");
  333.  
  334.              if (IDCMPflags & REQSET)
  335.                  strcpy(window_gadget7_node[3].ln_Name, "*REQSET");
  336.              else
  337.                  strcpy(window_gadget7_node[3].ln_Name, " REQSET");
  338.  
  339.              if (IDCMPflags & REQCLEAR)
  340.                  strcpy(window_gadget7_node[4].ln_Name, "*REQCLEAR");
  341.              else
  342.                  strcpy(window_gadget7_node[4].ln_Name, " REQCLEAR");
  343.  
  344.              if (IDCMPflags & REQVERIFY)
  345.                  strcpy(window_gadget7_node[5].ln_Name, "*REQVERIFY");
  346.              else
  347.                  strcpy(window_gadget7_node[5].ln_Name, " REQVERIFY");
  348.  
  349.              if (IDCMPflags & MENUPICK)
  350.                  strcpy(window_gadget7_node[6].ln_Name, "*MENUPICK");
  351.              else
  352.                  strcpy(window_gadget7_node[6].ln_Name, " MENUPICK");
  353.  
  354.              if (IDCMPflags & MENUVERIFY)
  355.                  strcpy(window_gadget7_node[7].ln_Name, "*MENUVERIFY");
  356.              else
  357.                  strcpy(window_gadget7_node[7].ln_Name, " MENUVERIFY");
  358.  
  359.              if (IDCMPflags & MOUSEBUTTONS)
  360.                  strcpy(window_gadget7_node[8].ln_Name, "*MOUSEBUTTONS");
  361.              else
  362.                  strcpy(window_gadget7_node[8].ln_Name, " MOUSEBUTTONS");
  363.  
  364.              if (IDCMPflags & MOUSEMOVE)
  365.                  strcpy(window_gadget7_node[9].ln_Name, "*MOUSEMOVE");
  366.              else
  367.                  strcpy(window_gadget7_node[9].ln_Name, " MOUSEMOVE");
  368.  
  369.              if (IDCMPflags & DELTAMOVE)
  370.                  strcpy(window_gadget7_node[10].ln_Name, "*DELTAMOVE");
  371.              else
  372.                  strcpy(window_gadget7_node[10].ln_Name, " DELTAMOVE");
  373.  
  374.              if (IDCMPflags & NEWSIZE)
  375.                  strcpy(window_gadget7_node[11].ln_Name, "*NEWSIZE");
  376.              else
  377.                  strcpy(window_gadget7_node[11].ln_Name, " NEWSIZE");
  378.  
  379.              if (IDCMPflags & SIZEVERIFY)
  380.                  strcpy(window_gadget7_node[12].ln_Name, "*SIZEVERIFY");
  381.              else
  382.                  strcpy(window_gadget7_node[12].ln_Name, " SIZEVERIFY");
  383.  
  384.              if (IDCMPflags & REFRESHWINDOW)
  385.                  strcpy(window_gadget7_node[13].ln_Name, "*REFRESHWINDOW");
  386.              else
  387.                  strcpy(window_gadget7_node[13].ln_Name, " REFRESHWINDOW");
  388.  
  389.              if (IDCMPflags & ACTIVEWINDOW)
  390.                  strcpy(window_gadget7_node[14].ln_Name, "*ACTIVEWINDOW");
  391.              else
  392.                  strcpy(window_gadget7_node[14].ln_Name, " ACTIVEWINDOW");
  393.  
  394.              if (IDCMPflags & INACTIVEWINDOW)
  395.                  strcpy(window_gadget7_node[15].ln_Name, "*INACTIVEWINDOW");
  396.              else
  397.                  strcpy(window_gadget7_node[15].ln_Name, " INACTIVEWINDOW");
  398.  
  399.              if (IDCMPflags & RAWKEY)
  400.                  strcpy(window_gadget7_node[16].ln_Name, "*RAWKEY");
  401.              else
  402.                  strcpy(window_gadget7_node[16].ln_Name, " RAWKEY");
  403.  
  404.              if (IDCMPflags & VANILLAKEY)
  405.                  strcpy(window_gadget7_node[17].ln_Name, "*VANILLAKEY");
  406.              else
  407.                  strcpy(window_gadget7_node[17].ln_Name, " VANILLAKEY");
  408.  
  409.              if (IDCMPflags & DISKINSERTED)
  410.                  strcpy(window_gadget7_node[18].ln_Name, "*DISKINSERTED");
  411.              else
  412.                  strcpy(window_gadget7_node[18].ln_Name, " DISKINSERTED");
  413.  
  414.              if (IDCMPflags & DISKREMOVED)
  415.                  strcpy(window_gadget7_node[19].ln_Name, "*DISKREMOVED");
  416.              else
  417.                  strcpy(window_gadget7_node[19].ln_Name, " DISKREMOVED");
  418.  
  419.              if (IDCMPflags & NEWPREFS)
  420.                  strcpy(window_gadget7_node[20].ln_Name, "*NEWPREFS");
  421.              else
  422.                  strcpy(window_gadget7_node[20].ln_Name, " NEWPREFS");
  423.  
  424.              if (IDCMPflags & INTUITICKS)
  425.                  strcpy(window_gadget7_node[21].ln_Name, "*INTUITICKS");
  426.              else
  427.                  strcpy(window_gadget7_node[21].ln_Name, " INTUITICKS");
  428.  
  429.              if (IDCMPflags & WBENCHMESSAGE)
  430.                  strcpy(window_gadget7_node[22].ln_Name, "*WBENCHMESSAGE");
  431.              else
  432.                  strcpy(window_gadget7_node[22].ln_Name, " WBENCHMESSAGE");
  433.  
  434.              if ((IDCMPflags & GADGET_IDCMP_FLAGS_ALL) == GADGET_IDCMP_FLAGS_ALL)
  435.                  strcpy(window_gadget7_node[23].ln_Name, "*GADGET_IDCMP_ALL");
  436.              else
  437.                  strcpy(window_gadget7_node[23].ln_Name, " GADGET_IDCMP_ALL");
  438.  
  439.  
  440.              /* WINDOW Flags */
  441.  
  442.              if (WINflags & WINDOWCLOSE)
  443.                  strcpy(window_gadget8_node[0].ln_Name, "*WINDOWCLOSE");
  444.              else
  445.                  strcpy(window_gadget8_node[0].ln_Name, " WINDOWCLOSE");
  446.  
  447.              if (WINflags & WINDOWDRAG)
  448.                  strcpy(window_gadget8_node[1].ln_Name, "*WINDOWDRAG");
  449.              else
  450.                  strcpy(window_gadget8_node[1].ln_Name, " WINDOWDRAG");
  451.  
  452.              if (WINflags & WINDOWDEPTH)
  453.                  strcpy(window_gadget8_node[2].ln_Name, "*WINDOWDEPTH");
  454.              else
  455.                  strcpy(window_gadget8_node[2].ln_Name, " WINDOWDEPTH");
  456.  
  457.              if (WINflags & WINDOWSIZING)
  458.              {
  459.                  strcpy(window_gadget8_node[3].ln_Name, "*WINDOWSIZING");
  460.                  ISetGadgetAttributes(gl,
  461.                                       WINDOW_GADGET_MINWIDTH,
  462.                                       GADGET_DATA_FLAG_DISABLED, 0L,
  463.                                       USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) USE_CURRENT_VALUE);
  464.                  ISetGadgetAttributes(gl,
  465.                                       WINDOW_GADGET_MAXWIDTH,
  466.                                       GADGET_DATA_FLAG_DISABLED, 0L,
  467.                                       USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) USE_CURRENT_VALUE);
  468.                  ISetGadgetAttributes(gl,
  469.                                       WINDOW_GADGET_MINHEIGHT,
  470.                                       GADGET_DATA_FLAG_DISABLED, 0L,
  471.                                       USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) USE_CURRENT_VALUE);
  472.                  ISetGadgetAttributes(gl,
  473.                                       WINDOW_GADGET_MAXHEIGHT,
  474.                                       GADGET_DATA_FLAG_DISABLED, 0L,
  475.                                       USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) USE_CURRENT_VALUE);
  476.              }
  477.              else
  478.              {
  479.                  strcpy(window_gadget8_node[3].ln_Name, " WINDOWSIZING");
  480.                  ISetGadgetAttributes(gl,
  481.                                       WINDOW_GADGET_MINWIDTH,
  482.                                       GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
  483.                                       USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) 0);
  484.                  ISetGadgetAttributes(gl,
  485.                                       WINDOW_GADGET_MAXWIDTH,
  486.                                       GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
  487.                                       USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) 0);
  488.                  ISetGadgetAttributes(gl,
  489.                                       WINDOW_GADGET_MINHEIGHT,
  490.                                       GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
  491.                                       USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) 0);
  492.                  ISetGadgetAttributes(gl,
  493.                                       WINDOW_GADGET_MAXHEIGHT,
  494.                                       GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
  495.                                       USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) 0);
  496.              }
  497.  
  498.              if (WINflags & BACKDROP)
  499.                  strcpy(window_gadget8_node[4].ln_Name, "*BACKDROP");
  500.              else
  501.                  strcpy(window_gadget8_node[4].ln_Name, " BACKDROP");
  502.  
  503.              if (WINflags & BORDERLESS)
  504.                  strcpy(window_gadget8_node[5].ln_Name, "*BORDERLESS");
  505.              else
  506.                  strcpy(window_gadget8_node[5].ln_Name, " BORDERLESS");
  507.  
  508.              if (WINflags & GIMMEZEROZERO)
  509.                  strcpy(window_gadget8_node[6].ln_Name, "*GIMMEZEROZERO");
  510.              else
  511.                  strcpy(window_gadget8_node[6].ln_Name, " GIMMEZEROZERO");
  512.  
  513.              if (WINflags & SUPER_BITMAP)
  514.                  strcpy(window_gadget8_node[7].ln_Name, "*SUPER_BITMAP");
  515.              else
  516.                  strcpy(window_gadget8_node[7].ln_Name, " SUPER_BITMAP");
  517.  
  518.              if (WINflags & SIMPLE_REFRESH)
  519.                  strcpy(window_gadget8_node[8].ln_Name, "*SIMPLE_REFRESH");
  520.              else
  521.                  strcpy(window_gadget8_node[8].ln_Name, " SIMPLE_REFRESH");
  522.  
  523. /*
  524.         if(WINflags & SMART_REFRESH)
  525.                 strcpy(window_gadget8_node[9].ln_Name,"*SMART_REFRESH");
  526.         else
  527.                 strcpy(window_gadget8_node[9].ln_Name," SMART_REFRESH");
  528. */
  529.  
  530.              if (flags & TEMPLATE_LIST_FLAG_REPORTMOUSE)
  531.                  strcpy(window_gadget8_node[10].ln_Name, "*REPORTMOUSE");
  532.              else
  533.                  strcpy(window_gadget8_node[10].ln_Name, " REPORTMOUSE");
  534.  
  535.              if (WINflags & NOCAREREFRESH)
  536.                  strcpy(window_gadget8_node[11].ln_Name, "*NOCAREREFRESH");
  537.              else
  538.                  strcpy(window_gadget8_node[11].ln_Name, " NOCAREREFRESH");
  539.  
  540.              if (WINflags & RMBTRAP)
  541.                  strcpy(window_gadget8_node[12].ln_Name, "*RMBTRAP");
  542.              else
  543.                  strcpy(window_gadget8_node[12].ln_Name, " RMBTRAP");
  544.  
  545.              if (WINflags & ACTIVATE)
  546.                  strcpy(window_gadget8_node[13].ln_Name, "*ACTIVATE");
  547.              else
  548.                  strcpy(window_gadget8_node[13].ln_Name, " ACTIVATE");
  549.  
  550.              if (flags & TEMPLATE_LIST_FLAG_BACK_FILL)
  551.                  strcpy(window_gadget8_node[14].ln_Name, "*FILL_BACKGROUND");
  552.              else
  553.                  strcpy(window_gadget8_node[14].ln_Name, " FILL_BACKGROUND");
  554.  
  555.              if (flags & TEMPLATE_LIST_FLAG_RENDER_COLORS)
  556.              {
  557.                  strcpy(window_gadget8_node[15].ln_Name, "*USE_RENDER_COLORS");
  558.                  ISetGadgetAttributes(gl,
  559.                                       WINDOW_GADGET_DETAILPEN,
  560.                                       GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
  561.                                       USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) 0);
  562.                  ISetGadgetAttributes(gl,
  563.                                       WINDOW_GADGET_BLOCKPEN,
  564.                                       GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
  565.                                       USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) 1);
  566.              }
  567.              else
  568.              {
  569.                  strcpy(window_gadget8_node[15].ln_Name, " USE_RENDER_COLORS");
  570.                  ISetGadgetAttributes(gl,
  571.                                       WINDOW_GADGET_DETAILPEN,
  572.                                       GADGET_DATA_FLAG_DISABLED, 0L,
  573.                                       USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) USE_CURRENT_VALUE);
  574.                  ISetGadgetAttributes(gl,
  575.                                       WINDOW_GADGET_BLOCKPEN,
  576.                                       GADGET_DATA_FLAG_DISABLED, 0L,
  577.                                       USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) USE_CURRENT_VALUE);
  578.              }
  579.  
  580.              if (flags & TEMPLATE_LIST_FLAG_AVAIL_FONTS)
  581.                  strcpy(window_gadget8_node[16].ln_Name, "*AVAIL_FONTS");
  582.              else
  583.                  strcpy(window_gadget8_node[16].ln_Name, " AVAIL_FONTS");
  584.          }
  585.  
  586.          SHORT
  587.              change_project_window(VOID)
  588.          {
  589.              struct TemplateList *tl = &template_list;
  590.              struct GadgetData *gd = &window_gadget_data[0];
  591.              APTR gl;
  592.              USHORT flags = tl->tl_Flags;
  593.              ULONG IDCMPflags = tl->tl_IDCMPFlags, WINflags = pwin->Flags;
  594.              SHORT status;
  595.  
  596.              /* Init gadgets with current values */
  597.              (gd + WINDOW_GADGET_LEFTEDGE)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->LeftEdge;
  598.              (gd + WINDOW_GADGET_TOPEDGE)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->TopEdge;
  599.              (gd + WINDOW_GADGET_WIDTH)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->Width;
  600.              (gd + WINDOW_GADGET_HEIGHT)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->Height;
  601.              (gd + WINDOW_GADGET_DETAILPEN)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->DetailPen;
  602.              (gd + WINDOW_GADGET_BLOCKPEN)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->BlockPen;
  603.              (gd + WINDOW_GADGET_TITLE)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) tl->tl_ProjectName;
  604.  
  605.              (gd + WINDOW_GADGET_MINWIDTH)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->MinWidth;
  606.              (gd + WINDOW_GADGET_MINHEIGHT)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->MinHeight;
  607.              (gd + WINDOW_GADGET_MAXWIDTH)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->MaxWidth;
  608.              (gd + WINDOW_GADGET_MAXHEIGHT)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->MaxHeight;
  609.  
  610.  
  611.              /* Print title and display gadgets */
  612.              IClearWindow(eri, ewin, 0, 0, EDITOR_WINDOW_WIDTH, EDITOR_WINDOW_HEIGHT, 0);
  613.  
  614.              if (!(gl = ICreateGadgets(eri, &window_gadget_data[0], 0, 0, NULL)))
  615.                  status = EDITOR_ERROR_OUT_OF_MEM;
  616.              else
  617.              {
  618.                  /* Init IDCMPFlag and Flag list */
  619.                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  620.  
  621.                  IDisplayGadgets(ewin, gl);
  622.                  status = change_project_window_action(gl);
  623.                  IRemoveGadgets(gl);
  624.                  IFreeGadgets(gl);
  625.              }
  626.  
  627.              return (status);
  628.          }
  629.  
  630.          /* Perform action for change project window settings */
  631.  
  632.          STATIC SHORT
  633.           change_project_window_action(APTR gl)
  634.          {
  635.              struct TemplateList *tl = &template_list;
  636.              struct NewWindow *nwin = &project_new_window;
  637.              struct MsgPort *up = ewin->UserPort;
  638.              SHORT left_edge = pwin->LeftEdge, top_edge = pwin->TopEdge, width = pwin->Width, height = pwin->Height, max_width = wb_screen.Width, max_height = wb_screen.Height, MinWidth = pwin->MinWidth, MinHeight = pwin->MinHeight, MaxWidth = pwin->MaxWidth,
  639.                      MaxHeight = pwin->MaxHeight;
  640.              UBYTE dpen = pwin->DetailPen, bpen = pwin->BlockPen;
  641.              BYTE title[MAX_PROJECT_NAME_LEN];
  642.              USHORT flags = tl->tl_Flags;
  643.              ULONG WINflags = pwin->Flags, IDCMPflags = tl->tl_IDCMPFlags;
  644.              BOOL keepon = TRUE;
  645.              SHORT status = EDITOR_STATUS_NORMAL;
  646.  
  647.              sprintf(title, "%s", tl->tl_ProjectName);
  648.  
  649.              do
  650.              {
  651.                  struct IntuiMessage *msg;
  652.  
  653.                  WaitPort(up);
  654.                  while (msg = IGetMsg(up))
  655.                  {
  656.                      ULONG Class = msg->Class;
  657.                      USHORT Code = msg->Code;
  658.                      LONG IAddress = (LONG)msg->IAddress;
  659.  
  660.                      switch (Class)
  661.                      {
  662.                      case CLOSEWINDOW:
  663.                          status = EDITOR_STATUS_QUIT;
  664.                          keepon = FALSE;
  665.                          break;
  666.  
  667.                      case ISUP_ID:
  668.                          switch (Code)
  669.                          {
  670.                          case WINDOW_GADGET_TOPEDGE:
  671.                              if (((SHORT) IAddress + height) > max_height)
  672.                              {
  673.                                  DisplayBeep(NULL);
  674.                                  ISetGadgetAttributes(gl, WINDOW_GADGET_TOPEDGE, 0L, 0L, USE_CURRENT_VALUE, USE_CURRENT_VALUE, (BYTE *) top_edge);
  675.                              }
  676.                              else
  677.                              {
  678.                                  top_edge = (SHORT) IAddress;
  679.                                  flags |= TEMPLATE_LIST_FLAG_CHANGED;
  680.                              }
  681.                              break;
  682.  
  683.                          case WINDOW_GADGET_LEFTEDGE:
  684.                              if (((SHORT) IAddress + width) > max_width)
  685.                              {
  686.                                  DisplayBeep(NULL);
  687.                                  ISetGadgetAttributes(gl, WINDOW_GADGET_LEFTEDGE, 0L, 0L, USE_CURRENT_VALUE, USE_CURRENT_VALUE, (BYTE *) left_edge);
  688.                              }
  689.                              else
  690.                              {
  691.                                  left_edge = (SHORT) IAddress;
  692.                                  flags |= TEMPLATE_LIST_FLAG_CHANGED;
  693.                              }
  694.                              break;
  695.  
  696.                          case WINDOW_GADGET_WIDTH:
  697.                              if (((SHORT) IAddress + left_edge) > max_width)
  698.                              {
  699.                                  DisplayBeep(NULL);
  700.                                  ISetGadgetAttributes(gl, WINDOW_GADGET_WIDTH, 0L, 0L, USE_CURRENT_VALUE, USE_CURRENT_VALUE, (BYTE *) width);
  701.                              }
  702.                              else
  703.                              {
  704.                                  width = (SHORT) IAddress;
  705.                                  flags |= TEMPLATE_LIST_FLAG_CHANGED;
  706.                              }
  707.                              break;
  708.  
  709.                          case WINDOW_GADGET_HEIGHT:
  710.                              if (((SHORT) IAddress + top_edge) > max_height)
  711.                              {
  712.                                  DisplayBeep(NULL);
  713.                                  ISetGadgetAttributes(gl, WINDOW_GADGET_HEIGHT, 0L, 0L, USE_CURRENT_VALUE, USE_CURRENT_VALUE, (BYTE *) height);
  714.                              }
  715.                              else
  716.                              {
  717.                                  height = (SHORT) IAddress;
  718.                                  flags |= TEMPLATE_LIST_FLAG_CHANGED;
  719.                              }
  720.                              break;
  721.  
  722.                          case WINDOW_GADGET_DETAILPEN:
  723.                              dpen = (UBYTE) IAddress;
  724.                              break;
  725.  
  726.                          case WINDOW_GADGET_BLOCKPEN:
  727.                              printf("WINDOW_GADGET_BLOCKPEN: %ld\n", IAddress);
  728.                              bpen = (UBYTE) IAddress;
  729.                              break;
  730.  
  731.                          case WINDOW_GADGET_IDCMPFLAGS:
  732.                              switch ((ULONG) IAddress)
  733.                              {
  734.                              case 0:
  735.                                  if (IDCMPflags & GADGETDOWN)
  736.                                      IDCMPflags &= ~GADGETDOWN;
  737.                                  else
  738.                                      IDCMPflags |= GADGETDOWN;
  739.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  740.                                  break;
  741.  
  742.                              case 1:
  743.                                  if (IDCMPflags & GADGETUP)
  744.                                      IDCMPflags &= ~GADGETUP;
  745.                                  else
  746.                                      IDCMPflags |= GADGETUP;
  747.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  748.                                  break;
  749.  
  750.                              case 2:
  751.                                  if (IDCMPflags & CLOSEWINDOW)
  752.                                  {
  753.                                      IDCMPflags &= ~CLOSEWINDOW;
  754.                                      WINflags &= ~WINDOWCLOSE;
  755.                                  }
  756.                                  else
  757.                                  {
  758.                                      IDCMPflags |= CLOSEWINDOW;
  759.                                      WINflags |= WINDOWCLOSE;
  760.                                  }
  761.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  762.                                  break;
  763.  
  764.                              case 3:
  765.                                  if (IDCMPflags & REQSET)
  766.                                      IDCMPflags &= ~REQSET;
  767.                                  else
  768.                                      IDCMPflags |= REQSET;
  769.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  770.                                  break;
  771.  
  772.                              case 4:
  773.                                  if (IDCMPflags & REQCLEAR)
  774.                                      IDCMPflags &= ~REQCLEAR;
  775.                                  else
  776.                                      IDCMPflags |= REQCLEAR;
  777.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  778.                                  break;
  779.  
  780.                              case 5:
  781.                                  if (IDCMPflags & REQVERIFY)
  782.                                      IDCMPflags &= ~REQVERIFY;
  783.                                  else
  784.                                      IDCMPflags |= REQVERIFY;
  785.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  786.                                  break;
  787.  
  788.                              case 6:
  789.                                  if (IDCMPflags & MENUPICK)
  790.                                      IDCMPflags &= ~MENUPICK;
  791.                                  else
  792.                                      IDCMPflags |= MENUPICK;
  793.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  794.                                  break;
  795.  
  796.                              case 7:
  797.                                  if (IDCMPflags & MENUVERIFY)
  798.                                      IDCMPflags &= ~MENUVERIFY;
  799.                                  else
  800.                                      IDCMPflags |= MENUVERIFY;
  801.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  802.                                  break;
  803.  
  804.                              case 8:
  805.                                  if (IDCMPflags & MOUSEBUTTONS)
  806.                                      IDCMPflags &= ~MOUSEBUTTONS;
  807.                                  else
  808.                                      IDCMPflags |= MOUSEBUTTONS;
  809.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  810.                                  break;
  811.  
  812.                              case 9:
  813.                                  if (IDCMPflags & MOUSEMOVE)
  814.                                      IDCMPflags &= ~MOUSEMOVE;
  815.                                  else
  816.                                      IDCMPflags |= MOUSEMOVE;
  817.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  818.                                  break;
  819.  
  820.                              case 10:
  821.                                  if (IDCMPflags & DELTAMOVE)
  822.                                      IDCMPflags &= ~DELTAMOVE;
  823.                                  else
  824.                                      IDCMPflags |= DELTAMOVE;
  825.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  826.                                  break;
  827.  
  828.                              case 11:
  829.                                  if (IDCMPflags & NEWSIZE)
  830.                                      IDCMPflags &= ~NEWSIZE;
  831.                                  else
  832.                                      IDCMPflags |= NEWSIZE;
  833.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  834.                                  break;
  835.  
  836.                              case 12:
  837.                                  if (IDCMPflags & SIZEVERIFY)
  838.                                      IDCMPflags &= ~SIZEVERIFY;
  839.                                  else
  840.                                      IDCMPflags |= SIZEVERIFY;
  841.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  842.                                  break;
  843.  
  844.                              case 13:
  845.                                  if (IDCMPflags & REFRESHWINDOW)
  846.                                      IDCMPflags &= ~REFRESHWINDOW;
  847.                                  else
  848.                                      IDCMPflags |= REFRESHWINDOW;
  849.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  850.                                  break;
  851.  
  852.                              case 14:
  853.                                  if (IDCMPflags & ACTIVEWINDOW)
  854.                                      IDCMPflags &= ~ACTIVEWINDOW;
  855.                                  else
  856.                                      IDCMPflags |= ACTIVEWINDOW;
  857.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  858.                                  break;
  859.  
  860.                              case 15:
  861.                                  if (IDCMPflags & INACTIVEWINDOW)
  862.                                      IDCMPflags &= ~INACTIVEWINDOW;
  863.                                  else
  864.                                      IDCMPflags |= INACTIVEWINDOW;
  865.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  866.                                  break;
  867.  
  868.                              case 16:
  869.                                  if (IDCMPflags & RAWKEY)
  870.                                      IDCMPflags &= ~RAWKEY;
  871.                                  else
  872.                                      IDCMPflags |= RAWKEY;
  873.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  874.                                  break;
  875.  
  876.                              case 17:
  877.                                  if (IDCMPflags & VANILLAKEY)
  878.                                      IDCMPflags &= ~VANILLAKEY;
  879.                                  else
  880.                                      IDCMPflags |= VANILLAKEY;
  881.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  882.                                  break;
  883.  
  884.                              case 18:
  885.                                  if (IDCMPflags & DISKINSERTED)
  886.                                      IDCMPflags &= ~DISKINSERTED;
  887.                                  else
  888.                                      IDCMPflags |= DISKINSERTED;
  889.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  890.                                  break;
  891.  
  892.                              case 19:
  893.                                  if (IDCMPflags & DISKREMOVED)
  894.                                      IDCMPflags &= ~DISKREMOVED;
  895.                                  else
  896.                                      IDCMPflags |= DISKREMOVED;
  897.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  898.                                  break;
  899.  
  900.                              case 20:
  901.                                  if (IDCMPflags & NEWPREFS)
  902.                                      IDCMPflags &= ~NEWPREFS;
  903.                                  else
  904.                                      IDCMPflags |= NEWPREFS;
  905.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  906.                                  break;
  907.  
  908.                              case 21:
  909.                                  if (IDCMPflags & INTUITICKS)
  910.                                      IDCMPflags &= ~INTUITICKS;
  911.                                  else
  912.                                      IDCMPflags |= INTUITICKS;
  913.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  914.                                  break;
  915.  
  916.                              case 22:
  917.                                  if (IDCMPflags & WBENCHMESSAGE)
  918.                                      IDCMPflags &= ~WBENCHMESSAGE;
  919.                                  else
  920.                                      IDCMPflags |= WBENCHMESSAGE;
  921.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  922.                                  break;
  923.  
  924.                              case 23:
  925.                                  if ((IDCMPflags & GADGET_IDCMP_FLAGS_ALL) == GADGET_IDCMP_FLAGS_ALL)
  926.                                      IDCMPflags &= ~GADGET_IDCMP_FLAGS_ALL;
  927.                                  else
  928.                                      IDCMPflags |= GADGET_IDCMP_FLAGS_ALL;
  929.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  930.                                  break;
  931.                              }
  932.                              IRefreshGadgets(gl);
  933.                              break;
  934.  
  935.                          case WINDOW_GADGET_FLAGS:
  936.                              switch ((ULONG) IAddress)
  937.                              {
  938.                              case 0:
  939.                                  if (WINflags & WINDOWCLOSE)
  940.                                  {
  941.                                      WINflags &= ~WINDOWCLOSE;
  942.                                      IDCMPflags &= ~CLOSEWINDOW;
  943.                                  }
  944.                                  else
  945.                                  {
  946.                                      WINflags |= WINDOWCLOSE;
  947.                                      IDCMPflags |= CLOSEWINDOW;
  948.                                  }
  949.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  950.                                  break;
  951.  
  952.                              case 1:
  953.                                  if (WINflags & WINDOWDRAG)
  954.                                      WINflags &= ~WINDOWDRAG;
  955.                                  else
  956.                                      WINflags |= WINDOWDRAG;
  957.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  958.                                  break;
  959.  
  960.                              case 2:
  961.                                  if (WINflags & WINDOWDEPTH)
  962.                                      WINflags &= ~WINDOWDEPTH;
  963.                                  else
  964.                                      WINflags |= WINDOWDEPTH;
  965.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  966.                                  break;
  967.  
  968.                              case 3:
  969.                                  if (WINflags & WINDOWSIZING)
  970.                                  {
  971.                                      WINflags &= ~WINDOWSIZING;
  972.                                      MinWidth = 0;
  973.                                      MinHeight = 0;
  974.                                      MaxWidth = 0;
  975.                                      MaxHeight = 0;
  976.                                  }
  977.                                  else
  978.                                      WINflags |= WINDOWSIZING;
  979.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  980.                                  break;
  981.  
  982.                              case 4:
  983.                                  if (WINflags & BACKDROP)
  984.                                      WINflags &= ~BACKDROP;
  985.                                  else
  986.                                      WINflags |= BACKDROP;
  987.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  988.                                  break;
  989.  
  990.                              case 5:
  991.                                  if (WINflags & BORDERLESS)
  992.                                      WINflags &= ~BORDERLESS;
  993.                                  else
  994.                                      WINflags |= BORDERLESS;
  995.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  996.                                  break;
  997.  
  998.                              case 6:
  999.                                  if (WINflags & GIMMEZEROZERO)
  1000.                                      WINflags &= ~GIMMEZEROZERO;
  1001.                                  else
  1002.                                      WINflags |= GIMMEZEROZERO;
  1003.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  1004.                                  break;
  1005.  
  1006.                              case 7:
  1007.                                  if (WINflags & SUPER_BITMAP)
  1008.                                      WINflags &= ~SUPER_BITMAP;
  1009.                                  else
  1010.                                      WINflags |= SUPER_BITMAP;
  1011.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  1012.                                  break;
  1013.  
  1014.                              case 8:
  1015.                                  if (WINflags & SIMPLE_REFRESH)
  1016.                                      WINflags &= ~SIMPLE_REFRESH;
  1017.                                  else
  1018.                                      WINflags |= SIMPLE_REFRESH;
  1019.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  1020.                                  break;
  1021.  
  1022.                              case 9:
  1023. /*
  1024.                                                                         if(WINflags & SMART_REFRESH)
  1025.                                                                                 WINflags &= ~SMART_REFRESH;
  1026.                                                                         else
  1027.                                                                                 WINflags |= SMART_REFRESH;
  1028.                                                                         change_flags_list(gl,flags,IDCMPflags,WINflags);
  1029. */
  1030.                                  break;
  1031.  
  1032.                              case 10:
  1033.                                  if (flags & TEMPLATE_LIST_FLAG_REPORTMOUSE)
  1034.                                      flags &= ~TEMPLATE_LIST_FLAG_REPORTMOUSE;
  1035.                                  else
  1036.                                      flags |= TEMPLATE_LIST_FLAG_REPORTMOUSE;
  1037.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  1038.                                  break;
  1039.  
  1040.                              case 11:
  1041.                                  if (WINflags & NOCAREREFRESH)
  1042.                                      WINflags &= ~NOCAREREFRESH;
  1043.                                  else
  1044.                                      WINflags |= NOCAREREFRESH;
  1045.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  1046.                                  break;
  1047.  
  1048.                              case 12:
  1049.                                  if (WINflags & RMBTRAP)
  1050.                                      WINflags &= ~RMBTRAP;
  1051.                                  else
  1052.                                      WINflags |= RMBTRAP;
  1053.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  1054.                                  break;
  1055.  
  1056.                              case 13:
  1057.                                  if (WINflags & ACTIVATE)
  1058.                                      WINflags &= ~ACTIVATE;
  1059.                                  else
  1060.                                      WINflags |= ACTIVATE;
  1061.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  1062.                                  break;
  1063.  
  1064.                              case 14:
  1065.                                  if (flags & TEMPLATE_LIST_FLAG_BACK_FILL)
  1066.                                      flags &= ~TEMPLATE_LIST_FLAG_BACK_FILL;
  1067.                                  else
  1068.                                      flags |= TEMPLATE_LIST_FLAG_BACK_FILL;
  1069.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  1070.                                  break;
  1071.  
  1072.                              case 15:
  1073.                                  if (flags & TEMPLATE_LIST_FLAG_RENDER_COLORS)
  1074.                                      flags &= ~TEMPLATE_LIST_FLAG_RENDER_COLORS;
  1075.                                  else
  1076.                                  {
  1077.                                      flags |= TEMPLATE_LIST_FLAG_RENDER_COLORS;
  1078.                                      dpen = 0;
  1079.                                      bpen = 1;
  1080.                                  }
  1081.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  1082.                                  break;
  1083.  
  1084.                              case 16:
  1085.                                  if (flags & TEMPLATE_LIST_FLAG_AVAIL_FONTS)
  1086.                                      flags &= ~TEMPLATE_LIST_FLAG_AVAIL_FONTS;
  1087.                                  else
  1088.                                      flags |= TEMPLATE_LIST_FLAG_AVAIL_FONTS;
  1089.                                  change_flags_list(gl, flags, IDCMPflags, WINflags);
  1090.                                  break;
  1091.                              }
  1092.                              IRefreshGadgets(gl);
  1093.                              break;
  1094.  
  1095.                          case WINDOW_GADGET_TITLE:
  1096.                              sprintf(title, "%s", IAddress);
  1097.                              break;
  1098.  
  1099.                          case WINDOW_GADGET_MINWIDTH:
  1100.                              if ((SHORT) IAddress < 0)
  1101.                                  MinWidth = 1;
  1102.                              else
  1103.                                  MinWidth = (SHORT) IAddress;
  1104.                              break;
  1105.  
  1106.                          case WINDOW_GADGET_MINHEIGHT:
  1107.                              if ((SHORT) IAddress < 0)
  1108.                                  MinHeight = 1;
  1109.                              else
  1110.                                  MinHeight = (SHORT) IAddress;
  1111.                              break;
  1112.  
  1113.                          case WINDOW_GADGET_MAXWIDTH:
  1114.                              if ((SHORT) IAddress < 0)
  1115.                                  MaxWidth = 65535;
  1116.                              else
  1117.                                  MaxWidth = (SHORT) IAddress;
  1118.                              break;
  1119.  
  1120.                          case WINDOW_GADGET_MAXHEIGHT:
  1121.                              if ((SHORT) IAddress < 0)
  1122.                                  MaxHeight = 65535;
  1123.                              else
  1124.                                  MaxHeight = (SHORT) IAddress;
  1125.                              break;
  1126.  
  1127.                          case WINDOW_GADGET_OK:
  1128.                              /* Change project window */
  1129.                              nwin->LeftEdge = left_edge;
  1130.                              nwin->TopEdge = top_edge;
  1131.                              nwin->Width = width;
  1132.                              nwin->Height = height;
  1133.                              nwin->Flags = WINflags;
  1134.                              nwin->DetailPen = dpen;
  1135.                              nwin->BlockPen = bpen;
  1136.                              nwin->MinWidth = MinWidth;
  1137.                              nwin->MinHeight = MinHeight;
  1138.                              nwin->MaxWidth = MaxWidth;
  1139.                              nwin->MaxHeight = MaxHeight;
  1140.                              strcpy(tl->tl_ProjectWinName, title);
  1141.                              tl->tl_IDCMPFlags = IDCMPflags;
  1142.                              tl->tl_Flags = flags;
  1143.                              if ((status = new_project_window(tl, flags)) == EDITOR_STATUS_NORMAL)
  1144.                                  refresh_all_templates();
  1145.  
  1146.                              keepon = FALSE;
  1147.                              break;
  1148.  
  1149.                          case WINDOW_GADGET_CANCEL:
  1150.                              keepon = FALSE;
  1151.                              break;
  1152.  
  1153.                          }
  1154.                      }
  1155.  
  1156.                      IReplyMsg(msg);
  1157.                  }
  1158.              }
  1159.              while (keepon == TRUE);
  1160.  
  1161.              return status;
  1162.          }
  1163.